home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / mui38dev-storm / examples / demo.h < prev    next >
C/C++ Source or Header  |  1999-09-13  |  3KB  |  162 lines

  1. /*************************************************************/
  2. /* Includes and other common stuff for the MUI demo programs */
  3. /*************************************************************/
  4.  
  5. /* MUI */
  6. #include <libraries/mui.h>
  7.  
  8. /* System */
  9. #include <dos/dos.h>
  10. #include <graphics/gfxmacros.h>
  11. #include <workbench/workbench.h>
  12.  
  13. /* Prototypes */
  14. #include <clib/alib_protos.h>
  15. #include <clib/exec_protos.h>
  16. #include <clib/dos_protos.h>
  17. #include <clib/icon_protos.h>
  18. #include <clib/graphics_protos.h>
  19. #include <clib/intuition_protos.h>
  20. #include <clib/gadtools_protos.h>
  21. #include <clib/utility_protos.h>
  22. #include <clib/asl_protos.h>
  23.  
  24. #ifndef __GNUC__
  25.     #include <clib/muimaster_protos.h>
  26. #else
  27.     #include <inline/muimaster.h>
  28. #endif
  29.  
  30. /* ANSI C */
  31. #include <stdlib.h>
  32. #include <string.h>
  33. #include <stdio.h>
  34.  
  35.  
  36. /* Compiler specific stuff */
  37. /*FR* StormC compability added by Fredrik Rambris */
  38.  
  39. #ifdef _DCC
  40.  
  41.     #define REG(x) __ ## x
  42.     #define ASM
  43.     #define SAVEDS __geta4
  44.  
  45. #else
  46.  
  47.     #define REG(x) register __ ## x
  48.  
  49.     #if defined __MAXON__ || defined __GNUC__
  50.         #define ASM
  51.         #define SAVEDS
  52.     #else
  53.         #ifdef __STORM__
  54.             #define ASM
  55.             #define __stdargs
  56.             #define __asm
  57.         #else
  58.             #define ASM    __asm
  59.         #endif /* if __STORM__ */
  60.         #define SAVEDS __saveds
  61.     #endif /* if defined */
  62.  
  63.  
  64.     #ifdef __SASC
  65.         #include <pragmas/exec_sysbase_pragmas.h>
  66.     #else
  67.         #ifndef __GNUC__
  68.             #include <pragmas/exec_pragmas.h>
  69.         #endif /* ifndef __GNUC__ */
  70.     #endif /* ifdef SASC      */
  71.  
  72.     #ifndef __GNUC__
  73.  
  74.         #include <pragmas/dos_pragmas.h>
  75.         #include <pragmas/icon_pragmas.h>
  76.         #include <pragmas/graphics_pragmas.h>
  77.         #include <pragmas/intuition_pragmas.h>
  78.         #include <pragmas/gadtools_pragmas.h>
  79.         #include <pragmas/utility_pragmas.h>
  80.         #include <pragmas/asl_pragmas.h>
  81.         #include <pragmas/muimaster_pragmas.h>
  82.  
  83.     #endif /* ifndef __GNUC__ */
  84.  
  85.     extern struct Library *SysBase,*IntuitionBase,*UtilityBase,*GfxBase,*DOSBase,*IconBase;
  86.     struct Library *MUIMasterBase;
  87.  
  88. #endif /* ifdef _DCC */
  89.  
  90.  
  91. /*************************/
  92. /* Init & Fail Functions */
  93. /*************************/
  94.  
  95. static VOID fail(APTR app,char *str)
  96. {
  97.         if (app)
  98.                 MUI_DisposeObject(app);
  99.  
  100. #ifndef _DCC
  101.         if (MUIMasterBase)
  102.                 CloseLibrary(MUIMasterBase);
  103. #endif
  104.  
  105.         if (str)
  106.         {
  107.                 puts(str);
  108.                 exit(20);
  109.         }
  110.         exit(0);
  111. }
  112.  
  113.  
  114. #ifdef _DCC
  115.  
  116. int brkfunc(void) { return(0); }
  117.  
  118. int wbmain(struct WBStartup *wb_startup)
  119. {
  120.         extern int main(int argc, char *argv[]);
  121.         return (main(0, (char **)wb_startup));
  122. }
  123.  
  124. #endif
  125.  
  126.  
  127. #ifdef __SASC
  128. int CXBRK(void) { return(0); }
  129. int _CXBRK(void) { return(0); }
  130. void chkabort(void) {}
  131. #endif
  132.  
  133.  
  134. static VOID init(VOID)
  135. {
  136. #ifdef _DCC
  137.         onbreak(brkfunc);
  138. #endif
  139.  
  140. #ifndef _DCC
  141.         if (!(MUIMasterBase = OpenLibrary(MUIMASTER_NAME,MUIMASTER_VMIN)))
  142.                 fail(NULL,"Failed to open "MUIMASTER_NAME".");
  143. #endif
  144. }
  145.  
  146.  
  147. #ifndef __SASC
  148. static VOID stccpy(char *dest,char *source,int len)
  149. {
  150.         strncpy(dest,source,len);
  151.         dest[len-1]='\0';
  152. }
  153. #endif
  154.  
  155.  
  156. #ifndef MAKE_ID
  157. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  158. #endif
  159.  
  160.  
  161. LONG __stack = 8192;
  162.